using System.Collections.Generic;
using System.Drawing;
using DataAccessLayer;

namespace Editor
{
    public interface IEditorPresenter
    {
        EditorStartData LoadApplicationData(string filename);

        string[] GetFiles();

        GameObject GetGameObject(int id);

        void RemoveGameObject(int id);

        EditorRect GetCollisionRect(int id, int rectIndex);

        void SetCollisionRectangle(int id, int rectIndex, EditorRect rect);

        void AddCollisionRectangle(int id, EditorRect rect);

        EditorRect GetSourceRect(int id);

        void SetSourceRectangle(int id, EditorRect rect);

        EditorVector2 GetPosition(int id);

        void SetPosition(int id, EditorVector2 position);

        EditorVector2 GetDirection(int id);

        void SetDirection(int id, EditorVector2 dir);

        ObjectStats GetStats(int id);

        void SetStats(int id, ObjectStats stats);

        GameMenu GetMenu(int index);

        void AddMenu(GameMenu menu);

        List<MenuOption> GetMenuOptions(int menuIndex);

        void SetTextureName(int id, string name);

        void SaveGameFile(string curFilename);

        int GetObjectCount();

        void AddGameObject<T>(ref T obj) where T : GameObject;

        T AddGameObject<T>() where T: GameObject, new();

        IList<T> GetObjects<T>() where T : GameObject;

        GameLevel GetLevel(int index, int id = -1);

        int GetLevelCount();

        void AddLevel(GameLevel gameLevel);

        void SetLevel(int index, GameLevel level);

        void RemoveLevel(int index);

        void RemoveCollisionRectangle(int id, int selectedIndex);

        
    }
}